package com.atguigu.polymophism;

public class TestAnimal2 {
    public static void main(String[] args) {
        //在一个数组中，统一管理Animal的不同子类的对象
       /* Dog[] dogs = new Dog[3];
        dogs[0] = new Dog();
        dogs[1] = new Cat();//错误
        dogs[2] = new Pig();//错误
        */

        Animal[] animals = new Animal[3];
        animals[0] = new Dog();//多态引用，因为animals[0]是Animal父类类型的，右边是Dog对象
        animals[1] = new Cat();
        animals[2] = new Pig();

        //多态引用， a是Animal父类类型的，但是实际上 数组的元素分别是Dog、Cat、Pig类型的
        for (Animal a : animals) {//增强for循环，即foreach
            a.eat();
        }
    }
}
